home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-08-01 | 111.9 KB | 3,169 lines |
-
-
-
- - 1 -
-
-
-
- 5. _G_l_o_b_e_t_r_o_t_t_e_r__F_L_E_X_l_m__R_e_l_e_a_s_e__N_o_t_e_s
-
-
-
-
-
-
-
-
-
- Flexible License Manager
-
- Version 5.11
-
- RELEASE NOTES
-
- February 5, 1997
-
- These release notes describe the changes from FLEXlm v5.0
- The release notes for FLEXlm v5.0 appear below.
-
-
-
- OVERVIEW
- ________
-
- o lc_hostid() -- improved hostid interface.
- o LM_A_RETRY_CHECKOUT attribute -- improved checkout reliability
- o SUPERSEDE="feat1 ... featn" -- New license file option.
- Allows one feature to supersede any other previous feature lines.
- o PLATFORMS="plat1 ..." -- license can lock to particular
- hardware platforms.
- o Serial Number hostid (ID=nnnn) -- for licensing without
- requiring real end-user hostid.
- o lmdiag can checkout individual INCREMENT lines.
- o WARNING() -- improved status reporting for Lenient Licensing.
- o PERROR(), PWARN() -- easier Windows programming.
- o MAX -- New End-User option allows sysadmin to prioritize
- use amongst groups.
- o TIMEOUTALL -- Easier way to TIMEOUT all features via end-user
- options file.
- o lc_checkin(...LM_CI_ALL_FEATURES...) -- You can now checkin
- all features with one call. This gives a more accurate
- log in REPORTLOG than simply exiting.
- o LM_A_TCP_TIMEOUT -- Automatically retrieves licenses even
- when users turn off their computers (especially Windows).
- o CPU Usage is now logged to REPORTLOG file. Vendors can
- now charge based on process CPU Usage, and users can
- do internal billbacks also based on CPU Usage.
- o CPU_USAGE_INTERVAL, CPU_USAGE_DELTA -- Users can fine-tune
- how much CPU-Usage information is logged.
-
-
-
-
-
-
-
-
-
-
-
- - 2 -
-
-
-
- o Improved security for expiration dates.
- o makekey is improved -- easier to use for more flexible.
- o lmswitchr -- improved command-line interface.
- o End-User Options file now supports PACKAGE names.
- o lmdiag -- REPORTLOG now ignores lmdiag checkouts.
-
- Important Note
- ______________
-
- The ENCRYPTION_SEED1 and ENCRYPTION_SEED2 in lm_code.h are
- numbers which are key to FLEXlm security. They are 0x87654321
- and 0x12345678 by default. Each vendor must ensure that you
- replace these with numbers which are unique to your company,
- and keep these numbers secret. Only someone with access to
- these numbers can generate license files that will work with
- your application. MAKE SURE the numbers are not left to the
- defaults.
-
-
-
- Notice of Future Changes
- ________________________
-
- Discontinuing "man" Pages
- _________________________
-
- Starting with v6 of FLEXlm, we will no longer ship a "man"
- directory, with Unix-style man pages. These seem to
- be more rarely used these days, and we ship HTML files
- which provide a more popular on-line interface.
-
- Discontinuing debug_libs directory
- __________________________________
-
- Starting with v6 of FLEXlm, we will no longer ship a
- debug_libs directory.
-
-
- New Features in V5.1
- ____________________
-
-
-
- lc_hostid() -- improved hostid interface.
- _________________________________________
-
- int lc_hostid( LM_HANDLE *job,
- int id_type,
- char buf[MAX_CONFIG_LINE])
-
- lc_hostid() fills in buf with a hostid string
-
-
-
-
-
-
-
-
-
-
-
- - 3 -
-
-
-
- specified by type. If type is HOSTID_DEFAULT, you get
- the default hostid type on the system.
-
- Hostids have become more flexible in recent versions,
- and this allows programmers access to hostid
- information in string format. It's recommended in the
- future that programmers use this function and avoid
- functions that deal with (HOSTID *) struct
- information, since this may change from version to
- version.
-
- Note that lc_hostid may return a space-separated list
- of hostids, if that's appropriate on a given system.
-
- Hostid types are specified and described in lmclient.h
- and include
-
- HOSTID_LONG HOSTID_ETHER
- HOSTID_ANY HOSTID_USER
- HOSTID_DISPLAY HOSTID_HOSTNAME
- HOSTID_ID_MODULE HOSTID_STRING
- HOSTID_FLEXID1_KEY HOSTID_DISK_SERIAL_NUM
- HOSTID_INTERNET HOSTID_DEMO
- HOSTID_FLEXID2_KEY HOSTID_FLEXID3_KEY
- HOSTID_FLEXID4_KEY HOSTID_FLEXID5_KEY
- HOSTID_SERNUM_ID HOSTID_VENDOR
- HOSTID_DEFAULT
-
- lc_hostid returns 0 on success, and the FLEXlm errno on
- error.
-
- LM_A_RETRY_CHECKOUT attribute
- _____________________________
-
- When true, checkouts that fail due to communications
- errors are automatically retried once. Often this
- second attempt will succeed on networks with poor
- communications. This is turned on by default in both
- the Simple and Trivial API, and the default is off in
- the FLEXible API. Use
-
- lc_set_attr(job, LM_A_RETRY_CHECKOUT, (LM_A_VAL_TYPE)1);
-
- to turn this attribute on for the FLEXible API
- (recommended). It's turned off by default in the
- FLEXible API so that previous default behavior is
- preserved.
-
-
- License File Enhancments
- ________________________
-
-
-
-
-
-
-
-
-
-
-
- - 4 -
-
-
-
- SUPERSEDE List
- ______________
-
-
- SUPERSEDE
- SUPERSEDE="feat1 ... featn"
- SUPERSEDE=*ALL*
-
- SUPERSEDE (new in v5.0) can now take a list of features
- to supersede. This means that you can ship a single
- feature line which, if installed, will make other
- features with previous ISSUED dates unavailable to
- your customers. This is a way to securely phase out
- FEATUREs already shipped. If the list is "ALL", then all
- previously issued FEATURE lines are disabled.
-
-
- PLATFORMS="..."
- _________________________
-
- This allows you to restrict usage to particular hardware
- platforms. The platforms are defined as the same platforms
- that are used to license FLEXlm itself: sun4_u4, i86_n3, etc.
- The names can be found in the Platform Specific Notes section
- at the bottom of this file. Note that the platform
- name can be overridden with
-
- lc_set_attr(job, LM_A_PLATFORM_OVERRIDE, (LM_A_VAL_TYPE)str);
-
- Note that the trailing digit in the platform name is
- ignored, and can be optionally left off in the name.
-
- If the platform list differs in any way for 2 INCREMENT
- lines for the same feature-name, they're are pooled
- separately and counted separately.
-
- Examples:
-
- FEATURE f1 ... PLATFORMS=sun4_u4
- INCREMENT f2 ... 1 PLATFORMS="i86_w alpha_u"
- INCREMENT f2 ... 1 PLATFORMS="i86_w"
-
- f1 can be used on any sparc station running SunOS or
- Solaris.
-
- f2 can be used on a PC running Windows (not NT) and
- Dec Alpha running OSF1 or DEC-Unix. There's 1 license
- that can be shared between all Windows and Alpha-Unix
- systems, and 1 more license just for Windows. That is,
- at most 1 f2 can be used on the Alpha-Unix systems,
- but at most 2 f2s can be used by Windows systems.
-
-
-
-
-
-
-
-
-
-
-
- - 5 -
-
-
-
- If the checkout fails because it's on the wrong
- platform, the error returned is LM_PLATNOTLIC:
- "This platform not authorized by license"
-
-
- ID=1234 HOSTID
- ______________
-
- We now support a pseudo-hostid of "ID=...". This is
- functionally equivalent to the "ANY" hostid -- it
- will run on any node. The difference is that the
- customer has a unique identifier that can be used
- to identify the customer. This hostid can be used
- to lock the license server (on the SERVER line) or
- the client node (on the FEATURE/INCREMENT line) --
- anywhere a hostid can be used. The number can have
- dashes included for readability -- the dashes are
- ignored.
-
- Examples:
- ID=12345678 is the same as
- ID=1234-5678 is the same as
- ID=1-2-3-4-5-6-7-8
-
- The HOSTID struct for this type is setup thus:
-
- type = HOSTID_SERNUM_ID
- id.string contains the id in string format.
-
- lmdiag can now checkout individual INCREMENT or FEATURE lines
- _____________________________________________________________
-
- If a license file contains multiple lines for a
- particular feature, you can now select a particular
- line for lmdiag to report on. For example:
-
- lmdiag f1:HOSTID=12345678
-
- will attempt a checkout on the line with the hostid limited
- to 12345678
-
- The full syntax is:
-
- lmdiag feature:specification=value
-
- where:
- feature feature name
- specification one of the following:
-
- VERSION
- HOSTID
-
-
-
-
-
-
-
-
-
-
-
- - 6 -
-
-
-
- EXPDATE
- KEY
- VENDOR_STRING
- ISSUER
- NOTICE
- dist_info
- user_info
- asset_info
- value the value specifies a particular line.
-
- WARNING(): Warning messages for Simple and Trivial API
- ____________________________________________________
-
- With LM_LENIENT and LM_FAILSAFE, a CHECKOUT or lp_checkout() call
- may succeed, while the license was not actually checked out.
- In this case, an application may want to inform the user of
- the condition, while still running.
- If there is a warning condition:
- 1) CHECKOUT() and lp_checkout() will return 0 (success),
- 2) lp_warning() and WARNING() will return a string
- describing the warning condition.
-
- If there is no warning condition (the license was fully
- checked out from the server), then lp_warning() and WARNING()
- will return 0 (NULL).
-
- PERROR(), PWARN(), lp_perror() and lp_pwarn()
- ___________________________________________________________
-
- These Trivial and Simple API functions all print error
- and/or warning messages to the user.
-
- Windows: The messages appear in popups.
-
- Unix: The messages are printed to stderr.
-
- These functions are most useful on windows systems, since the
- popups are convenient for programmers and end-users.
-
-
- End User Options File Enhancments
- ___________________________________
-
- MAX
- ___
-
- Syntax: MAX numlic featurename type name
- Example: MAX 4 f1 GROUP accounting
-
- MAX gives your customers significantly more flexibility in
- how they prioritize use of licenses at their site. In past,
-
-
-
-
-
-
-
-
-
-
-
- - 7 -
-
-
-
- you could RESERVE licenses for individuals, or prevent
- individuals from using licenses, but with MAX, you can now
- indicate that a particular GROUP has a maximum use. You can
- also specify USER, HOST, HOST_GROUP, etc. as with all end-user
- options. If a checkout exceeds the maximum, they will see the
- following error message:
-
- Checkout exceeds MAX specified in options file (-87,147)
-
-
- TIMEOUTALL
- __________
-
- This works the same as TIMEOUT, but applies to all features:
-
- TIMEOUTALL 1000
-
- All features are timed out in 1000 seconds. See the
- Programmers and/or End-User manual for more information
- on TIMEOUT behavior.
-
-
- End-user Options features can now be PACKAGE names
- __________________________________________________
-
- If you specify a PACKAGE name in the options file, it
- will apply to all features in that package. This is
- true for both regular PACKAGEs and OPTIONS=SUITE.
-
-
- lc_checkin() now takes LM_CI_ALL_FEATURES
- _________________________________________
-
- The feature for lc_checkin can now be LM_CI_ALL_FEATURES
- (which is actually a NULL pointer). This will check in all
- features currently checked out. This has nearly the same
- effect as calling lc_disconn() or even lc_free_job().
- However, since a checkin message is actually sent to the
- server, the REPORTLOG logs this as a normal checkin().
- checkins that occur because of a disconnect are indicated
- differently in the log, so that end-users could differentiate
- between an application that actually calls checkin, and one
- that simply exits.
-
- IMPORTANT: If you use LM_CI_ALL_FEATURES (in the client) with
- ls_infilter (in the vendor daemon), then ls_infilter MUST
- check the feature name against LM_CI_ALL_FEATURES, which is
- actually a NULL pointer. Failure to do so may result in a
- crash. That is, you must check:
-
- if (feature != LM_CI_ALL_FEATURES)
-
-
-
-
-
-
-
-
-
-
-
- - 8 -
-
-
-
- LM_A_TCP_TIMEOUT
- ________________
-
- If a client node crashes or the client node is disconnected
- from the network, the license will be automatically checked
- back in in LM_A_TCP_TIMEOUT seconds.
- default: 2 hours (60*60*2).
- Maximum value: 4 hours 15 minutes (15300 seconds),
- or 0 means NO TCP timeout.
- Minimum value: 60 seconds
-
- CPU Usage is now logged to REPORTLOG file.
- __________________________________________
-
- CPU Usage is now automatically always logged when the
- REPORTLOG file is in use. In addition, this can be
- fine-tuned by the end-user with 2 settings in the
- end-user options file. The settings allow the user to
- limit how much CPU-usage is logged, thereby reducing
- log file size. By default, CPU-usage is only logged
- at checkout and checkin. However, it can also be
- logged with heartbeats enabling more accurate and
- fine-tuned CPU-usage reporting.
-
- REPORTLOG filename [ CPU_USAGE_INTERVAL = {n|CONTINUOUS} ] [CPU_USAGE_DELTA = n]
-
- CPU_USAGE_INTERVAL=n -- CPU-usages from heartbeats
- will be reported no more often than once every n
- minutes. Default is a huge number.
- "CONTINUOUS" is the same as 0, but is easier
- to read.
-
- CPU_USAGE_DELTA=n -- n is in tenths of a second of CPU
- time. Only log CPU-usage if it has changed
- from the last log by n/10 seconds of CPU-time.
-
-
- Improved Expiration Date Checking
- _________________________________
-
- FLEXlm now automatically makes the following checks to ensure
- security of the expiration date. These checks ONLY occur if the
- license to be granted is expiring.
-
- 1) If the date on the system running the license
- server has been set back more than 24 hours,
- checkout fails with LM_BADSYSDATE
-
- 2) If the client is NOT using USE_SERVER or port@host,
- the checkout fails if the client node's system date
- has been set back more than 24 hours.
-
-
-
-
-
-
-
-
-
-
-
- - 9 -
-
-
-
- 3) If the client's date differs by more than 24-hours
- from the server's date.
-
-
- FLEXible API Changes
- ____________________
-
- lc_baddate and lc_set_attr(...LM_A_MAX_TIMEDIFF) are now disabled
- _________________________________________________________________
-
- These checks are modified and automatically performed, so these
- calls are no longer needed. For compatibility, the functions
- can be called, but they don't do anything.
-
- We found some cases on Unix with the date expiration
- routines (identified as bug P2181), which caused
- a checkout to hang or take a long time. In order to fix
- these cases, the routines which detect a systems
- date being set back do not detect a set-back date as often
- as they did previously.
-
-
- lc_expire_days returns LM_FOREVER on unexpiring license
- _______________________________________________________
-
- If the license doesn't expire, the expiration date is set to
- 1-jan-0, and lc_expire_days will return LM_FOREVER, which
- is defined to be 9999. In version 5.0, lc_expire_days returned
- the number of days until a date in the year 2038.
-
-
-
- Other Enhancements
- __________________
-
-
- makekey prompts are more helpful
- ________________________________
-
- The makekey license generator now has a simplified, more
- helpful interface, and supports the all FEATURE attributes.
-
-
- lmswitchr accepts daemon name
- _____________________________
-
- lmswitchr syntax is now:
-
- lmswitchr [ -c license_file ] daemon new-file, or
- lmswitchr [ -c license_file ] feature new-file
-
-
-
-
-
-
-
-
-
-
-
-
- - 10 -
-
-
-
- It used to only accept a feature name. It now accepts a
- daemon name also, and this is usually easier to use.
-
-
- lmgrd -nfs_log -- faster logging
- ________________________________
-
- The -nfs_log is used to turn off fflush() commands to
- both the debug log and REPORTLOG files. Through
- internal testing we've discovered that fflush() can,
- on some systems, noticeably slow down the servers when
- they log to files that are NFS-mounted.
-
- In practice we recommend that log files NOT be
- NFS-mounted, but if you must do this, -nfs_log is then
- recommended. This may mean that the log files will be
- behind by a transaction or two, but in practice we
- find that -nfs_log actually makes no noticeable
- change, except to make the servers run faster.
-
-
- lmdiag: server logs do not record checkout
- ___________________________________________
-
- In previous versions, when lmdiag checked out a
- license from the server, the server logs recorded the
- checkout. The logs now no longer are affected by
- lmdiag.
-
-
- lmcrypt: -f is now the default
- ______________________________
-
- In previous versions lmcrypt required -f to encrypt
- a line already encrypted. This is now the default
- behavior and doesn't require the -f argument.
- If you prefer the old behavior, it can be modified
- in machind/lmcrypt.c. The -f argument now has no effect.
-
-
-
- Other Changes
- _____________
-
- makekey.c now uses lc_cryptstr()
- ________________________________
-
- makekey source now uses lc_cryptstr() as encrypting
- function. It previously used lc_crypt(), which is a
- harder function to use and maintain across FLEXlm
- versions. We now recommend that lc_cryptstr() be used
-
-
-
-
-
-
-
-
-
-
-
- - 11 -
-
-
-
- in its place.
-
-
-
- Bug fixes:
- __________
-
- Bug Platform Description
- P1039 all lmcrypt and lc_cryptstr() ignore FEATURESET.
- P1414 all lmcrypt doesn't always truncate license file
- lines to 80 characters. Note that this
- fix only applies to lines that are in the
- v4+ format -- to force this, add ck=0 attributes
- to each line.
- P1460 all In rare cases, checkouts with LM_A_CHECKOUT_DATA
- and LM_DUP_VENDOR can become orphaned and never
- checked in.
- P1499 Win32 lsvendor.c defaults ls_minimum_user_timeout to 30
- seconds.
- P1488 all lc_expire_days() returns number of days until
- max-unix date if no expiration. Fix is to
- return LM_FOREVER.
- P1506 all hostid lists should force FEATURE lines to be
- printed in "new" new format, i.e., HOSTID="..."
- P1511 all If TIMEOUT set, if the client tries to
- do a checkout between when the server frees the
- license and the client does a heartbeat, communications
- fail. rare.
- P1593 all lmdiag core dumps if no SERVER line in license file.
- P1602 all lc_heartbeat() doc is missing from Reference Manual.
- P1603 all copyright was a global symbol. All FLEXlm global
- symbols should have "l_" or "lc_" prefix.
- P1619 all lmstat reports non-suite PACKAGE name as "Error"
- P1621 all 1 process checks out 2 SUITE components, then checks
- 1 in: SUITE-token should remain checked out, but
- is not.
- P1658 all The following end-user options file syntax did
- not RESERVE the right FEATURE line:
- "RESERVE ... feature:HOSTID=nnn"
- P1659 all lmdiag: If there's several INCREMENT or FEATURE lines
- for the same feature name, lmdiag only reported on
- the last line.
- P1674 all lc_test_conf after checkout with LM_CO_LOCALTEST
- returned null if using port@host or USE_SERVER.
- P1676 all CHECKIN the same feature twice resulted in a core dump.
- P1708 Win32 Server log says "Unknown Signal" from lmdown.
- P1715 all vendor-defined hostids fail if the vdef hostid
- routine returns lowercase characters.
- P1728 all On some platforms, LM_PROJECT environment variable
- can cause vendor daemon to crash.
- P1741 all 1) use port@host or USE_SERVER, 2) feature removed
-
-
-
-
-
-
-
-
-
-
-
- - 12 -
-
-
-
- from license, then lmreread, 3) checkout returns
- LM_MAXUSERS instead of LM_NOFEATURE.
- P1778 all lmcrypt core dumps when hostid has 0x prefix.
- P1825 all lmdiag with colon-separated LM_LICENSE_FILE -- stops
- reporting when on file in the list doesn't exist.
- P1843 all lmdiag reports that licenses have incorrect syntax
- when they have vendor-defined hostids, though the
- files are correct.
- P1850 all lc_cryptstr() and lmcrypt have memory leaks when
- the feature contains "ck=nnn"
- P1883 all purify reported harmless bug in l_key.c.
- P1901 all lmcrypt/lc_cryptstr() fails with decimal hostids
- (#nnn) larger than the maximum positive 32-bit int.
- P1929 all Some lmutil utilities fail (lmdiag/lmutil, etc.) with
- FLEXLM_COMM_TRANSPORT set to UDP.
- P2045 all lmcrypt could core dump with mistyped license file.
- P2058 alpha_u3 checkout uses a file descriptor which is not closed.
- P2059 all memory leak when LM_A_LICENSE_DEFAULT is called > 1
- time in a job.
- P2096 i86_d4 (DG Intel): checkouts were slow.
- P2118 all makekey generates incorrect ck= checksum when
- line wraps with ''.
- P2181 all On unix systems, lc_baddate could cause a checkout
- to take a long time, or sometimes hang.
-
-
- Known bugs:
- ___________
-
- P1852 2 HP provides a command for changing the ethernet
- address/hostid.
- Patch: None.
- Workaround: Use uname -i hostid, which is more
- secure.
-
- Platform Specific Notes:
- ________________________
-
- i86_w3
- ______
-
- Win32s will not be supported after FLEXlm v5. This is
- because Microsoft is discontinuing support for win32s.
-
- UNIX
- ____
-
-
-
- alpha_u3
- ________
-
-
-
-
-
-
-
-
-
-
-
- - 13 -
-
-
-
- uname -a: OSF1 zippy V3.2 17 alpha
- CC: cc -std1
- NOTE: alpha_u1 is discontinued. This only means that
- we no longer support v1 and v2 of the OS, and
- virtually no one uses those OS versions. Alpha_u3
- fully supports Alpha DEC Unix 3 and 4.
-
- decs_u4
- _______
-
- uname -a: ULTRIX newport 4.2 0 RISC
- CC: /bin/cc -DPMAX -DULTRIX -DMIPS
-
- dg_u5
- _____
-
- uname -a: dgux dgsvr4 5.4 generic AViiON mc88100
- CC: /bin/cc
-
- encore_u4
- _________
-
- uname -a: UNIX_SV encore 4.2MP 4.0.0.10 m88k m88k
- CC: /usr/bin/cc
-
- hp300_u8
- ________
-
- uname -a: HP-UX agent86 B.08.00 A 9000/375 080009060992
- CC: /bin/cc
- link flags: -lBSD
-
- hp700_u8
- ________
-
- uname -a: HI-UX hit1 02.03_/B E 3050/R 154
- CC: /bin/cc -Aa -D_HIUX_SOURCE +DA1.0 +DS1.0
- (replace HIUX with HPUX on an HP system)
- Hostid note: See Bug P1852 above -- we no longer recommend
- using ethernet address as a hostid.
-
- i86_d4
- ______
-
- uname -a: dgux dgbig R4.11 generic AViiON Pentium
- CC: /bin/cc, actually, /usr/opt/sdk/sde/ix86dgux/usr/bin
-
- NOTE: hostid comes from /dev/net/*. By default these files
- are only readable by root. We recommend changing the
- perms to:
-
-
-
-
-
-
-
-
-
-
-
-
- - 14 -
-
-
-
- # chmod 644 /dev/net/*
- i86_l1
- ______
-
- uname -a: Linux linux 1.2.13 #1 Sun Aug 13 06:33:35 EDT 1995 i586
- CC: /usr/bin/cc
- cc -v: Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.0/specs
- gcc version 2.7.0
-
- IMPORTANT NOTE: v5 version uses ethernet address as a hostid,
- which is relatively secure. v4 used the 'hostid' command,
- which was not secure. To obtain the ethernet address, type:
-
- /sbin/ifconfig eth0
-
- Convert the hardward address as follows:
-
- From: HWaddr 00:40:05:16:E5:25
- To: 00400516E525
-
- V5 lmhostid will report ethernet address by default. v4
- will report 'hostid'. Both types of hostid are acceptable
- to version 5 clients and servers.
-
- lmhostid, or lmhostid -ether
- -- obtains the ethernet address (secure)
- lmhostid -long
- -- obtains the output from the 'hostid' command
- (not secure)
-
- i86_u2
- ______
-
- uname -a: UNIX_SV rolm 4.2MP 2.0 i386 x86at
- CC: /usr/bin/cc
-
- i86_x5 (Solaris on Intel)
- ______
-
- uname -a: SunOS sunpc 5.4 generic i86pc i386
- CC: /opt/SUNWspro/bin (version 3.0)
-
- moto_u4
- _______
-
- uname -a: UNIX_System_V motosvr4 4.0 R40V4.2 m88k mc88100
- CC: /bin/cc
- link flags: -lsocket -lnsl
-
- nec_u2
- ______
-
-
-
-
-
-
-
-
-
-
-
- - 15 -
-
-
-
-
- uname -a: UNIX_System_V nec 4.0 2 R3000 r3000
- CC: /bin/cc
- link flags: -lsocket -lnsl
- /usr/necbin/uversion: Release6.2 Rev01 - EWS4800/220 - WS
-
- rs6000_u3
- _________
-
- uname -a: AIX rs6000 1 3 000276513100
- CC: /bin/cc -D_BSD -D_BSD_INCLUDES
- link flags: -lbsd
-
- sco_u3
- ______
-
- uname -a: SCO_SV sco 3.2 2 i386
- uname -X:
- System = SCO_SV
- Node = sco
- Release = 3.2v5.0.0
- KernelID = 95/04/19
- Machine = i80486
- BusType = ISA
- Serial = 2CG001148
- Users = 5-user
- OEM# = 0
- Origin# = 1
- NumCPU = 1
- CC: /bin/cc -Dsco
- link flags: scoinfo.o -lsocket
-
- IMPORTANT NOTE: Previous FLEXlm versions were built on an older OS:
- Release = 3.2v2.0
- KernelID = 90/10/01
-
- sgi_u4
- ______
-
- uname -a: IRIX oly 4.0 08212247 IP6
- CC: /usr/bin/cc -cckr
- link flags: -lsun -lbsd -lc_s
-
- sgi_u5
- ______
-
- uname -a: IRIX indy 5.2 02282013 IP12 mips
- CC: /bin/cc
-
- To build -n32 -mips3 or -n32 -mips4 on IRIX 6:
-
-
-
-
-
-
-
-
-
-
-
-
- - 16 -
-
-
-
- 1) In this directory, do:
-
- % make o32
-
- This builds all binaries in o32 format.
-
- 2) Link your application (which has been compiled with
- -n32 -mips3 (or -mips4) with the correct FLEXlm library:
-
- liblmgr_n32mips3.a, or
- liblmgr_n32mips4.a
-
- NOTE: sgi keys are required for any 32-bit binary, including
- IRIX 6 with -n32 flags.
-
- sgi64_u6
- ________
-
- uname -a: IRIX64 challenger 6.1 07121831 IP26 mips
- CC: /bin/cc
-
- This was called sgir8_u6 in previous versions. It's been
- renamed to reflect the fact that it's 64-bit.
-
- To build -n32 -mips3 or -n32 -mips4, see sgi_u5 above.
-
- We currently only support 64-bit, mips4 binaries, which
- is how all files in this directory are compiled.
-
- sun4_u4
- _______
-
- uname -a: SunOS ss 4.1.2 2 sun4c
- CC: /bin/cc
-
- sun4_u4 is now built on a 4.1.2 system. This means that it
- will no longer work with 4.0.3 systems.
-
- sun4_u5
- _______
-
- uname -a: SunOS backstage 5.1 Generic sun4m sparc
- CC: /opt/SUNWspro/bin/cc
-
-
-
-
-
-
-
- Java Addendum
-
-
-
-
-
-
-
-
-
-
-
- - 17 -
-
-
-
- Installation and Directory Naming
- ---------------------------------
- No special installation of the FLEXlm class files is required.
- The classes are in the java_01/flexlm directory of the FLEXlm
- v5.1 main directory. Note that the FLEXlm class files must reside
- in a directory called "flexlm", since they are in a Java package
- named "flexlm".
-
- If you are running Java applications, you must set your CLASSPATH
- environment variable to include a component reflecting the location
- of the FLEXlm classes. For example, if you installed the FLEXlm
- classes into "/a/b/c/lmgr/v5.1/java_01/flexlm" you would include
- the following component in your CLASSPATH:
- "/a/b/c/lmgr/v5.1/java_01"
-
- If you are setting up the FLEXlm class files for access by an http
- server, they must reside in a directory called "flexlm", again
- because the FLEXlm class files are in the "flexlm" package.
-
- New Features Since v5.0
- -----------------------
- With LM.LENIENT and LM.FAILSAFE, checkout() may succeed, while
- the license was not actually checked out. In this case, an
- application may want to inform the user of the condition, while
- still running. If there is a warning condition:
- 1) checkout() will return 0 (success),
- 2) warning() will return a string describing the warning
- condition.
-
- If there is no warning condition (the license was fully
- checked out from the server), warning() will return null.
-
- The string to use for the Java platform in the PLATFORM= keyword
- is "java_0".
-
- The default TCP_TIMEOUT in FLEXlm/Java is 255 minutes. There is
- no API for changing this value.
-
- Integrating FLEXlm/Java into Your Java code
- -------------------------------------------
- The constructor method for the "license" class takes your
- vendor keys and your encryption seeds as arguments. Since
- the encryption seeds must be kept secret (anyone who knows
- your encryption seeds and has a FLEXlm kit can generate
- licenses for your product), they are XORed with vendor key 5
- when passed as method arguments. It is strongly recommended
- that you not store your encryption seeds and vendor keys in
- variables, or pass them verbatim as arguments.
- For example, given the following:
- Vendor name = xyzcorp
- vendor key 1 = 0xabcd1
-
-
-
-
-
-
-
-
-
-
-
- - 18 -
-
-
-
- vendor key 2 = 0xabcd2
- vendor key 3 = 0xabcd3
- vendor key 4 = 0xabcd4
- vendor key 5 = 0xabcd5
- encryption seed 1 = 0xdead1
- encryption seed 2 = 0xdead2
-
- you would invoke the license constructor as follows:
-
- license lic = new license ("xyzcorp", 0xabcd5 ^ 0xdead1,
- 0xabcd5 ^ 0xdead2,
- 0xabcd1, 0xabcd2, 0xabcd3, 0xabcd4);
-
- In this way, it's much harder for someone reading disassembled
- code to discover your encryption seeds.
-
-
- Node-locked Licenses
- --------------------
- Since Java is so portable and generic, there is not nearly the
- range of possibilities for determining a unique hostid in the
- Java environment as there are in the C/C++ world. Therefore,
- the FLEXlm/Java library supports only "DEMO", "ANY", and
- INTERNET=xxx.xxx.xxx.xxx hostids. Hostid lists are supported,
- so you can node-lock a license to a list of hostids, for example:
- "INTERNET=1.2.3.4 INTERNET=1.2.3.5 INTERNET=1.2.3.6". Wildcards
- are supported in address octets.
-
-
- Locating the License File
- -------------------------
- The checkout method allows you to specify the license file location.
- This is used to supply a runtime-determined license file location,
- such as a value supplied on the command line, applet parameter, or
- a default. It may be specified as a colon-separated list of license
- files and/or port@host specifications.
-
- License File Restrictions
- -------------------------
- When possible, it is preferable to use "port@host" to locate the
- license file, rather than a license file path. This is because
- the FLEXlm/Java implementation is not capable of parsing all
- possible license file syntax - when port@host is used, the server
- does all the license file parsing. Specifically, the FLEXlm/Java
- implementation understands only the following license file lines:
- SERVER
- DAEMON (ignored)
- USE_SERVER
- FEATURE
- INCREMENT
- Comment lines (lines starting with the "#")
-
-
-
-
-
-
-
-
-
-
-
- - 19 -
-
-
-
- Inclusion of other line types may cause an error.
-
- In addition, the Java library does not understand KEYWORD=value
- pairs (with the exception of "INTERNET=xxx.xxx.xxx.xxx" for host
- ID). or lines continued with "
-
- Examples of license file lines which are understood by the Java
- client:
-
- SERVER speedy ANY 7132
- DAEMON demo /u/flexlm/sun4_u4/demo
- FEATURE f1 demo 1.000 1-jan-00 4 BBF8808162D4072297FF ""
- FEATURE f2 demo 1.000 1-jan-98 0 FBA85061E4ACCBA6D932 "" "INTERNET=192.156.198.82 INTERNET=192.156.199.*"
-
- Examples of license file lines which are not understood by the
- Java client:
-
- PACKAGE p1 demo 1.000 8040204170869E176457 COMPONENTS="c1 c2"
- FEATURE f1 demo 1.000 1-jan-0 4 BBF8808162D4072297FF "" HOSTID=2f2f2f2f
- FEATURE f2 demo 1.000 1-jan-98 0 FBA85061E4ACCBA6D932 "" "INTERNET=192.156.198.82 INTERNET=192.156.199.*"
-
- To reiterate, the restriction is that the FLEXlm/Java library cannot
- parse these lines - it is perfectly reasonable to use such lines in
- a license file accessed via port@host, as the server does all the
- parsing in that scenario. License file paths should be used only
- for uncounted licenses, where it's not necessary to run a server.
-
-
- FLEXlm display
- --------------
- The FLEXlm display is a constant ("JavaDisplay") in the Java version.
-
-
- Development Environment
- -----------------------
- The FLEXlm/Java classes were compiled using Sun's JDK v1.0.2
- on Solaris/SPARC 2.x.
-
- Known bugs in this version
- --------------------------
- - Checkin is broken in port@host environment if license file line is
- greater than 145 bytes long. checkin fails when called, but any
- licenses checked out by an application or applet are checked in
- when it exits.
- - If USE_SERVER is present anywhere in the license file, it causes
- the server to be used for everything, not just the lines following
- USE_SERVER.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 20 -
-
-
-
-
-
- Flexible License Manager
-
- Version 5.0a
-
- RELEASE NOTES
-
- 24 May, 1996
-
- These release notes describe the changes from FLEXlm v4.0
-
- To upgrade v4 source to v5, make the following changes:
-
- 1) Change "#include lm_client.h" to "#include lmclient.h"
- 2) Change LM_CODE macro:
- ENCRYPTION_CODE_1 to ENCRYPTION_SEED1
- ENCRYPTION_CODE_2 to ENCRYPTION_SEED2
-
- Other, rarely needed function names were also changed. See
- the "FLEXible API Changes" section for a more complete listing
- of source changes you may need.
-
-
-
- OVERVIEW
- ________
-
- o port@host Plus! -- clients no longer need access to license file.
- More efficient and robust. Log files now can also log uncounted
- licenses.
- o USE_SERVER line -- client applications automatically get the
- benefits of port@host Plus without having to set an environment
- variable.
- o New Trivial and Simple APIs. Get FLEXlm functionality with
- 3 function calls.
- o lc_expire_days() -- function to tell when a license will expire
- o Server automatically notifies of licenses that will expire soon
- upon startup.
- o Hostid lists -- ability to lock a single FEATURE or INCREMENT line
- to several hostids. For example, allow 10 uses to be shared amongst
- only 3 nodes, by hostid.
- o Improved easier API for vendor-defined heartbeats.
- o lc_timer() ("heartbeats") interface made easier.
- o Easier specification of default license file location.
- o $LM_PROJECT environment variable added to REPORTLOG data for
- FLEXadmin reporting.
- o Improved Internet Firewall support -- Can specify TCP port number
- on DAEMON line.
- o Feature names in end-user Options file can now optionally
- specify particular INCREMENT lines.
-
-
-
-
-
-
-
-
-
-
-
- - 21 -
-
-
-
- o Improved lmcrypter error reporting, via new function lc_chk_conf()
- o IP Address supported for hostname on SERVER line.
- o CAPACITY license allows vendors to charge based on the
- power of the system: e.g., PC clients can be charged less than
- Unix clients.
- o Consolidate license files with SUPERSEDE option on FEATURE line
- o New ISSUED=date attribute -- readable issued date
- o USER_BASED and HOST_BASED licenses -- requires specified number of
- users (or hosts) to be INCLUDEd via the end-user options file.
- o FEATURE serial number attribute: "SN=value".
- o FEATURE MINIMUM=n checkout attribute.
- o DUP_GROUP for SUITE parent -- added flexibility for PACKAGE licensing.
- o MAX_OVERDRAFT in end-user options file -- allows end-user to limit
- OVERDRAFT -- for negotiated fees with trusted customers.
- o End-user options vendor-daemon "pool" selection -- so end-users
- can specify which INCREMENT line a RESERVE applies to.
- o lc_vsend() automatically connects to the server.
- o Improved end-user-specified TIMEOUT behavior -- the license is
- freed at the TIMEOUT time, rather than upon subsequent
- checkout request.
- o lmdiag provides more detailed FEATURE descriptions.
- o REPORTLOG format improved -- it's takes 75% less disk space,
- holds significantly more information, and will produce faster
- FLEXadmin reports.
- o lmstrip utility for security.
- o Overall improved security.
-
- New Features in V5.0
- ____________________
-
- port@host PLUS!
- _______________
-
- This is a significant enhancement for the port@host
- feature in FLEXlm -- the behavior is nearly the same
- as the existing port@host feature, but performance
- is enhanced. (Note: the old behavior is still available
- with the syntax "-port@host" -- prepend a minus sign).
- With port@host PLUS:
-
- o The client never reads the license file,
- so startup is faster, particularly with
- large license files.
- o Sites with large license files, or Wide-Area
- networks can now safely use port@host
- o License servers can now log usage of
- uncounted licenses. To do this, make sure
- the license file has a SERVER and DAEMON
- line. If it does not, simply prepend them.
- The debug and report log files will then
- log usage for uncounted licenses in addition
-
-
-
-
-
-
-
-
-
-
-
- - 22 -
-
-
-
- to the normal logging of counted licenses.
-
-
- Automatic port@host via USE_SERVER
- __________________________________
-
- port@host behavior is preferable to having the client
- application read the license file, since the application
- does not have to have a file in sync with the server.
-
- Now you can get this behavior automatically. Simply
- put the USE_SERVER keyword in the license file
- after the SERVER line, and the client will behave as
- though it were using port@host.
-
- If you have uncounted lines in your license file,
- and you're not running a server, or if you want clients
- to not check out uncounted licenses from your
- running server, put the uncounted lines before the
- USE_SERVER line in the file.
-
- With USE_SERVER, client copies of the license file
- are only required to have a SERVER line, followed by a
- USE_SERVER line. Anything after that in the file
- is ignored by client applications.
-
-
- New Optional Trival and Simple APIs:
- ___________________________________
-
- This new API is "policy-based". That is, you specify
- an overall policy, with some optional modifiers, and
- everything is taken care of automatically. This
- new API is recommended for most companies that have
- straightforward licensing needs.
-
- Every attempt is made in these APIs to automatically
- solve common problems. For example, the display
- setting comes from the $DISPLAY environment variable,
- which is converted to an IP address for security
- reasons. For this reason, to override the display
- setting, a programmer should use putenv() (or
- setenv()) to set the variable before checking out a
- license. You will notice other, automatic, behavior
- that differs from the old, now called "FLEXible", API.
-
- See the example in machind/policy.c.
-
- The following is a complete, correct example of
- the new API, using the Trivial API macros:
-
-
-
-
-
-
-
-
-
-
-
-
- - 23 -
-
-
-
- #include "lmpolicy.h"
-
- main()
- {
- if (CHECKOUT(LM_RESTRICTIVE, "f1", "1.0","license.dat"))
- {
- fprintf(stderr, "%s0, ERRSTRING());
- exit(1);
- }
- /* your application code here */
- CHECKIN();
- }
-
- POLICIES:
- _________
-
- LM_RESTRICTIVE -- checkout, return failure if fails
- LM_QUEUE -- checkout, but queue if failure
- return error if other
- LM_FAILSAFE -- Always run. Queue for license
- if MAXUSERS.
- LM_LENIENT -- return error on MAXUSERS, otherwise
- return success.
-
- MODIFIERS:
- __________
-
- LM_MANUAL_HEARTBEAT -- call HEARTBEAT(), which returns number
- of retries
- LM_RETRY_RESTRICTIVE -- HEARTBEAT will attempt retries forever,
- unless this is set, where it will
- exit after the 5th retry attempt.
-
- FUNCTIONS:
- __________
-
- There's 2 levels of function calls: macro-level
- (Trivial) and actual functions (Simple). Most users
- will be able to use the Trivial API, which works only
- work if your binary checks out no more than one
- feature at a time. Otherwise, you'll need to use the
- function calls.
-
- Trivial API:
- CHECKOUT(policy, feature, version, licpath)
-
- where
-
- policy (int) is one of the policies listed above, with
- modifiers ORed in, e.g.,
- LM_RESTRICTIVE | LM_MANUAL_HEARTBEAT.
-
-
-
-
-
-
-
-
-
-
-
- - 24 -
-
-
-
- feature (char *) feature name.
- version (char *) version in floating point format.
- licpath (char *) path to default location for license
- file. If 0, ignored.
-
- Returns 0 if success, else FLEXlm lm_errno.
-
- CHECKIN() -- checks in the license from CHECKOUT
-
- ERRSTRING() -- returns (char *) explanatory message
- for the latest FLEXlm error.
-
- HEARTBEAT() -- exchanges heartbeat messages with
- server. Returns 0 if success, else,
- number of failed retry attempts performed.
-
- Simple API:
-
- lp_checkout(VENDOR_NAME, code, policy, feature,
- version, nlic, licpath, lp_handle)
-
- where
-
- VENDOR_NAME -- from lm_code.h.
- code -- from LM_CODE macro, as in normal FLEXlm
- policy -- see CHECKOUT above.
- feature -- ditto
- version -- ditto
- nlic -- number of licenses to checkout
- licpath -- see CHECKOUT above
- lp_handle -- pointer to LP_HANDLE *. This is
- return handle from lp_checkout, and
- is used with all subsequent lp_xxx
- calls, e.g.,
- LP_HANDLE *lp;
- ...
- lp_checkout(...,&lp);
-
- return values same as CHECKOUT
-
- lp_checkin(lp) -- lp is value returned from lp_checkout
-
- lp_errstring(lp) -- lp is value returned from
- lp_checkout
-
- lp_heartbeat(lp, nreconn, minutes)
- (Only used if policy is modified with
- LM_MANUAL_HEARTBEAT)
-
- lp -- value returned from lp_checkout
- nreconn -- pointer to integer -- number of
-
-
-
-
-
-
-
-
-
-
-
- - 25 -
-
-
-
- reconnects in "minutes" (if NULL,
- ignored)
- minutes -- return nreconn in this many
- minutes (if 0, ignored)
- lp_heartbeat return values same as HEARTBEAT
-
- nreconn can be used to discourage
- end-user theft by stopping and
- starting servers.
-
- New FEATURE attributes:
- _______________________
-
- Hostid Lists
- ____________
-
- Hostids can now be a list of hostids. The syntax is:
-
- "hostid1 hostid2 ... hostidn"
-
- For FEATURE lines in the new format, this will look
- like:
-
- FEATURE ... HOSTID="hostid1 hostid2 ... hostidn"
-
-
- This can be used on the FEATURE/INCREMENT/UPGRADE
- lines, but is not supported on the SERVER line (where
- it's not really needed). It allows node-locking to a
- list of hosts, an often requested feature.
-
- HOSTID struct now has a new member: next. This is now
- a null-terminated list of hostids. Usually, vendors
- that examine this struct only do so to see if they
- have a DEMO license. For that reason, this new member
- (next) should normally not be needed by vendors.
-
- Two new functions are available for these lists (which
- should be rarely needed):
-
- void lc_free_hostid(job, hostid)
-
- and
-
- HOSTID *lc_copy_hostid(job, hostid)
-
-
- DAEMON port number -- Internet Firewall Support
- _______________________________________________
-
- Some firewalls require the administrator to specify
-
-
-
-
-
-
-
-
-
-
-
- - 26 -
-
-
-
- which ports are available to clients outside the
- firewall. In this case it is necessary to define not
- only the TCP port that lmgrd will use, but also the
- port each vendor daemon will use. This can now be
- done on the DAEMON line. The new syntax is:
-
- DAEMON vdaemon_name path [ [port=]port_num ] [ [options=]options.dat ]
-
-
- where port_num is a TCP port number and options.dat
- is the path to the end-user options file.
-
- For VMS, the old syntax for port, as well as this new
- syntax, is supported. This is not, however, currently
- supported for NT or Netware servers, and it's unlikely
- to be needed since firewalls are currently rarer for
- these systems.
-
-
- SN=serial_number
- ________________
-
- SN=serial_number: This is a optional, encrypted, string
- attribute, useful for differentiating otherwise
- identical INCREMENT lines.
-
-
- USER_BASED and HOST_BASED
- _________________________
-
- Syntax:
- USER_BASED[=n]
- HOST_BASED[=n]
- If USER_BASED is specified, then all licenses must be
- INCLUDEd to USER names via the end-user options file.
- Similarly, if HOST_BASED is specified, then all
- licenses must be INCLUDEd via HOST names.
- USER_BASED cannot appear on the same line with HOST_BASED.
-
- If =n appears, then the number of USERs or HOSTs is
- limited to n; otherwise, the limit is the number of
- users in the FEATURE.
-
- Will create new vendor-daemon pools. (See note about
- Vendor Daemon Pools later in this RELEASE_NOTES.)
-
-
- MINIMUM=n
- _________
-
- Syntax: MINIMUM=min. If lc_checkout(...nlic...),
-
-
-
-
-
-
-
-
-
-
-
- - 27 -
-
-
-
- nlic is less than min, then the server will checkout min.
-
-
- SUPERSEDE and ISSUED
- ____________________
-
- This allows vendors to sum up a set of INCREMENT lines
- in a single, new FEATURE (or INCREMENT) line, which
- supersedes all INCREMENT lines for the same feature
- name with previous start-dates. Note that the start
- date is the one field which is not readable in the
- license file, and is part of the 20-character license
- key.
-
- To make this more readable, we've also added a new
- ISSUED=date field (e.g., ISSUED=1-jan-1996). If the
- ISSUED date is set, then SUPERSEDE uses it, otherwise
- it uses the start-date
-
- For example:
-
- INCREMENT f1 ... 1 ...
- INCREMENT f1 ... 1 ...
- INCREMENT f1 ... 1 ...
- INCREMENT f1 ... 4 ... SUPERSEDE
-
- Assuming that the start date on the first 3 INCREMENT
- lines are prior to the last, the user will get only 4
- uses of f1, and the first 3 INCREMENT lines can be
- deleted with no impact on the number of licenses of f1
- available. Naturally, this is more readable in
- combination with ISSUED:
-
- INCREMENT f1 ... 1 ... ISSUED=1-jan-1995
- INCREMENT f1 ... 1 ... ISSUED=1-jan-1995
- INCREMENT f1 ... 1 ... ISSUED=1-jan-1995
- INCREMENT f1 ... 4 ... SUPERSEDE ISSUED=1-jan-1996
-
-
- CAPACITY and LM_A_CAPACITY
- __________________________
-
- The most common purpose of CAPACITY is to charge more
- for a more powerful system. For example, with CAPACITY,
- you could automatically checkout more licenses on a Unix
- system than on a PC, thereby effectively charging more
- for the more powerful system.
-
- CAPACITY is a checkout multiplier--if lc_checkout
- requests 1 license, and CAPACITY is set to 3, 3 licenses
- will be checked out.
-
-
-
-
-
-
-
-
-
-
-
- - 28 -
-
-
-
-
- CAPACITY is set by
-
- 1) Adding the CAPACITY keyword to the FEATURE
- line
- 2) Setting CAPACITY in the application with
- lc_set_attr(job, LM_A_CAPACITY,
- (LM_A_VAL_TYPE)value);
- This value becomes a multiplier to the
- checkout number IF CAPACITY is set in the
- license file.
-
- If CAPACITY is missing from the FEATURE line, the attribute
- setting in the code will have no effect.
-
- Similarly, if CAPACITY is on the FEATURE line, but
- there is no call to lc_set_attr(...LM_A_CAPACITY), this
- will have no effect.
-
- The attribute must be set before the first connection
- to the server (usually lc_checkout), and cannot be
- reset once set.
-
- CAPACITY will create new vendor-daemon pools. (See note about
- Vendor Daemon Pools later in this RELEASE_NOTES.)
-
-
- SUITE_DUP_GROUP for PACKAGE SUITEs
- __________________________________
-
- An enabling FEATURE line for a PACKAGE can now specify
- a different duplicate grouping for the "parent" of the
- suite than for its components via SUITE_DUP_GROUP=xxx
- where xxx is any combination of UHDV. (See the manual
- for DUP_GROUP for an explanation of duplicate
- grouping.) Note: If SUITE_DUP_GROUP is not specified,
- the parent will have the same duplicate grouping as
- the components.
-
- For example:
-
- PACKAGE pkg demo 1.050 E0A0A0B133C159D609A5 COMPONENTS="c1 c2" OPTIONS=SUITE
- FEATURE pkg demo 1.050 01-jan-0 3 6B9C2001518FA9DA4193 DUP_GROUP=U SUITE_DUP_GROUP=NONE
-
- Features "c1" and "c2" will have a duplicate grouping
- mask of USER, while the parent feature, "pkg", will
- have a mask of NONE. This means the same user can use
-
- 3 uses of c1, or
- 2 uses of c1 and 1 of c2, or
- 1 use of c1 and 2 of c2
-
-
-
-
-
-
-
-
-
-
-
- - 29 -
-
-
-
- IP Address now supported as hostname on SERVER line
- ___________________________________________________
-
- You can now use an IP address in the format #.#.#.#
- instead of a hostname on the SERVER line. Note this
- is ONLY supported when all clients and servers referring
- to the license file are v5 or higher.
-
-
- makekey vs lmcrypt
- ___________________________
-
- makekey has not been extended to support the new
- FEATURE line attributes, and will not be extended in
- the future. We recommend that you use lmcrypt
- instead, as lmcrypt is much easier to use. Moreover,
- adding yet more options to makekey would make it more
- and more cumbersome to use. The source for makekey is
- available in machind/makekey.c, and you are free to
- add options to it as needed.
-
- New FLEXible API Functions
- __________________________
-
- lc_expire_days()
- ________________
-
- This new function returns the number of days until a license
- expires. It's syntax is:
-
- int days;
- CONFIG *conf;
-
- conf = lc_get_config(job, feature);
- days = lc_expire_days(job, conf);
-
- It's return values are:
-
- > 0 -- days till expiration
- 0 -- license will expire today at midnight
- < 0 -- lm_errno: LM_LONGGONE (expired) or
- LM_BADPARAM (invalid config argument).
-
- lc_errtext()
- ____________
-
- Returns error message for FLEXlm errno. Syntax:
-
- (char *)error_message = lc_errtext(lm_job, lm_errno);
-
- Do not free the string returned from this function -- it's
-
-
-
-
-
-
-
-
-
-
-
- - 30 -
-
-
-
- static memory in the FLEXlm library. If needed later, it
- should be copied to ensure it's value doesn't change.
-
- lc_chk_conf()
- _____________
-
- char * lc_chk_conf(job, conf, check_name)
- LM_HANDLE *job;
- CONFIG *conf;
- int check_name;
-
- Given a pointer to a CONFIG struct, lc_chk_conf
- returns a string describing errors in the struct, or
- NULL if no problems are found. This is automatically
- called by lc_cryptstr(), so if you're using lmcrypt or
- lc_cryptstr() you don't need to additionally call
- lc_chk_conf().
-
- Normally this should only be used by a license
- generation program that calls lc_crypt(), such as
- makekey.
-
- If check_name is true, invalid feature names will also be
- reported.
-
-
- lc_heartbeat()
- ______________
-
- lc_heartbeat can be used instead of lc_timer, allowing
- more security and a non-callback based API. Syntax is:
-
- int lc_heartbeat(LM_HANDLE *job, int *ret_num_reconnects,
- int minutes)
-
- This is the same as lp_heartbeat, described above.
- lc_heartbeat returns 0 upon success or the number of
- failed connections to the server. If lc_heartbeat
- fails, the application can notify the user, or
- if the number of failures is high, penalize the user
- by exiting or other steps.
-
- In addition, the 2nd and 3rd arguments can be used to
- provide additional security: It is possible to steal
- licenses by starting and restarting the server. One
- way to thwart this is to detect many reconnections in
- a short period, and take appropriate steps if this is
- discovered. The ret_num_reconnects is a pointer to
- an integer, which is set to the the number of reconnections
- in the number of minutes specified in the last argument.
- ret_num_reconnects is ONLY set when a reconnection
-
-
-
-
-
-
-
-
-
-
-
- - 31 -
-
-
-
- occurs, which in turn only occurs when lc_heartbeat
- returns 0.
-
- Following is a possible example for using this function:
-
- int num_reconnects, rc;
-
- rc = lc_heartbeat(lm_job, &num_reconnects, 10);
- if (rc) tell_user("The server is down);
- else if (num_reconnects > 3)
- {
- tell_user("Server restarted too many times");
- exit(-1);
- }
-
-
- Vendor Daemon logs licenses soon to expire
- __________________________________________
-
- Upon startup, the vendor daemon will report licenses
- that will expire within 2 weeks.
-
- End-User Options File "pool" selection
- ______________________________________
-
- Because of INCREMENT, when you RESERVE based on a
- feature name, prior to v5 you could not control which
- "pool" for that feature was being RESERVEd. For
- example,
-
- FEATURE f1 demo 1.0 ...
- INCREMENT f1 demo 2.0 ...
-
- This will create 2 separate pools in the vendor
- daemon, tracking version 1.0 licenses SEPARATELY from
- v2.0 uses. (Different pools are created if the
- version, hostid, and sometimes the vendor-defined
- string are different.)
-
- RESERVE 1 f1 USER daniel
-
- This will reserve only from the first pool. Should
- you want to reserve a 2.0 version of f1 for daniel,
- you can do this with
-
- RESERVE 1 f1:VERSION=2.0 USER daniel
-
- You can specify a feature by any of the following fields:
-
- VERSION
- HOSTID
-
-
-
-
-
-
-
-
-
-
-
- - 32 -
-
-
-
- EXPDATE
- KEY
- VENDOR_STRING
- ISSUER
- NOTICE
- dist_info
- user_info
- asset_info
-
- Note that the lowercase fields are values that user
- can modify in the license file. So, another way to
- select the 2nd pool in the above example is to modify
- the INCREMENT line to:
-
- INCREMENT f1 demo 2.0 ... asset_info="pick this"
-
- And RESERVE by:
-
- RESERVE 1 f1:asset_info="pick this" USER daniel
-
- This new functionality applies everywhere a feature
- name is specified in the end-user options file:
-
- INCLUDE, INCLUDEALL, EXCLUDE, etc.
-
- $LM_PROJECT
- ___________
-
- If a client application has the $LM_PROJECT
- environment variable set, then this will be logged in
- the vendor daemon's REPORTLOG, for FLEXadmin's report
- writer.
-
- End-User MAX_OVERDRAFT limit
- ________________________
-
- If a license includes an OVERDRAFT limit, the end-user
- can choose to reduce the overdraft amount, in the
- end-user options file. The syntax is
-
- MAX_OVERDRAFT feature nnn
-
- where nnn is a number less than the OVERDRAFT amount
- for this feature in the license.dat file.
-
- The ascii debug log file reports this:
-
- 14:58:03 (demo) FEATURE f1 OVERDRAFT reduced from 20 to 10
-
- This can be used to offer discounts to trusted customers.
-
-
-
-
-
-
-
-
-
-
-
-
- - 33 -
-
-
-
- lmcrypt and lc_cryptstr()
- ___________________________
-
- Error messages are improved. Here's an example of the
- improved output:
-
- license.dat:line 3:"INCREMENT f1 demo 1.050 01-jan-99 0
- DB1C20014C0C97B05C0A USER_BAS ..."
- Uncounted (number of users is 0) missing hostid
- Invalid license file syntax (-2,269)
-
-
- New, Simplified Vendor-Defined Hostid--LM_A_VENDOR_ID_DECLARE
- _____________________________________________________________
-
- This has been simplified from 4 callback functions,
- to 1 callback function and an attribute setting.
-
- Here's sample code:
-
- Step 1: make a source file hostids.c
-
- /* hostids.c: */
-
- /* define a callback function for getting the hostid */
-
- HOSTID *
- get_vd_hostid(hostid_num)
- int hostid_num;
- {
- HOSTID *id = l_new_hostid(); /* Must call l_new_hostid()
- to allocate this hostid */
- /*
- * We return the fixed strings for
- * illustration. The real function would
- * determine the hostid, and return it as
- * a string
- */
- id->type = hostid_num;
- switch (hostid_num == HOSTID_VENDOR)
- {
- case HOSTID_VENDOR:
- strcpy(id->id.vendor, "1234");
- return id;
- case HOSTID_VENDOR+1:
- strcpy(id->id.vendor, "4321")
- return id;
- default: return (HOSTID *)0; /* internal error */
- }
- }
-
-
-
-
-
-
-
-
-
-
-
-
- - 34 -
-
-
-
- /* define a function to register all vendor-defined hostid
- information: */
-
- void
- register_hostids()
- {
- /* declare an LM_VENDOR_HOSTID struct */
- LM_VENDOR_HOSTID h;
-
- /* register the callback */
- lc_set_attr(lm_job, LM_A_VENDOR_GETHOSTID,
- (LM_A_VAL_TYPE)(get_vd_hostid));
-
- /* define the first hostid type */
- h.label = "MYHOSTID_KEYWORD";
- h.hostid_num = HOSTID_VENDOR;
- h.case_sensitive = 0;
- h.get_vendor_id = get_vd_hostid;
-
- /* register this definition: */
- lc_set_attr(lm_job, LM_A_VENDOR_ID_DECLARE,
- (LM_A_VAL_TYPE)&h);
- /* define the next hostid type */
- h.label = "SECOND_HOSTID";
- h.hostid_num = HOSTID_VENDOR+1;
- h.case_sensitive = 0;
- h.get_vendor_id = get_vd_hostid;
-
- /* register this definition: */
- lc_set_attr(lm_job, LM_A_VENDOR_ID_DECLARE,
- (LM_A_VAL_TYPE)&h);
- }
-
- Step 2: call register_hostids from client application, and
- license generators (lmcrypt, makekey, etc.)
-
- LM_HANDLE *lm_job;
-
- ...
-
- lc_init(..., &lm_job);
-
- register_hostids();
-
- ...
-
-
- Step 3: Modify machind/ls_vendor.c thus:
-
- ...
-
-
-
-
-
-
-
-
-
-
-
-
- - 35 -
-
-
-
- ls_user_init2 = register_hostids;
-
- ...
-
- Step 4: Modify makefiles to include hostids.c.
-
-
- FLEXible API Changes
- ____________________
-
- ENCRYPTION_CODE_1 and ENCRYPTION_CODE_2 names changed
- _____________________________________________________
-
- They are replaced with ENCRYPTION_SEED1 and ENCRYPTION_SEED2.
- There is no functional change, just a name change to
- use a more standard terminology for the function of these
- seeds. If you want to use an existing lm_code.h file,
- you'll need to change these names.
-
- lc_get_dlist() and lc_free_daemon_list() removed
- ________________________________________________
-
- These 2 functions are removed from the public API for
- FLEXlm. (They still exist internally as l_get_dlist()
- and l_free_daemon_list()). There's little or no reason
- why an application should need these functions. In
- addition, they don't always work with the new Port At
- Host Plus functionality.
-
- lc_flush_config renamed to l_flush_config
- _________________________________________
-
- lc_flush_config should no longer be used in applications.
- Where an application needs to reread the license file, it
- should create a new job, via lc_init(). Otherwise FLEXlm
- will itself automatically read the license file when it
- is appropriate to do so.
-
- Therefore lc_flush_config() has been renamed to l_flush_config().
- l_flush_config() takes the same arguments. You can continue to
- use l_flush_config() for now, but at best it rereads the license
- file unnecessarily, and at worst it can cause a core dump, if
- a successful checkout has already occurred.
-
-
- lc_node_lock() removed in this version
- ______________________________________
-
- This function has been removed as of v5.0.
-
-
-
-
-
-
-
-
-
-
-
-
-
- - 36 -
-
-
-
- HOSTID struct changed
- _____________________
-
- NOHOSTID is removed. This is replaced by a
- NULL hostid pointer.
-
- Demo licenses are now indicated by the type member
- being set to HOSTID_DEMO. This used to be
- override member set to DEMO_SOFTWARE.
-
- CONFIG struct "HOSTID id" member changed
- ________________________________________
-
- This struct is defined in lm_client.h, and utilized
- by many FLEXlm functions. The id member used to be
- a HOSTID struct. It's now renamed to idptr, and it's
- a pointer to a HOSTID struct. We renamed it so that
- if you referenced it in the past, the compiler will
- give you a compile time error. The pointer will be
- NULL if the CONFIG line doesn't have a hostid. In previous
- versions, the type was set to NOHOSTID if there was
- nohostid. This type has been removed.
-
- lc_timer returns int -- simpler heartbeat interface
- ___________________________________________________
-
- lc_timer returns the current number of failed reconnection
- attempts to the server.
-
- With this return value, a program can now avoid using
- callbacks (LM_A_USER_RECONNECT, and LM_A_USER_RECONNECT_DONE)
- to handle heartbeats. Many programmers will find this
- a simpler, improved interface when their program must call
- lc_timer directly, rather than through SIGALRM (the
- default behavior) or via the X or Windows window manager.
-
- NOTE: when lc_timer indicates no connection, do not
- then call lc_checkout. lc_timer has already done
- this, and calling lc_checkout on an already checked
- out feature will result in a confused state.
-
- lc_getid_type() and lc_gethostid()
- __________________________________
-
- These function returns a pointer to a list of HOSTID
- structs. Each time either one is called, the list is
- free'd. Therefore, don't call either twice, and
- expect a previously returned pointer to be valid.
-
-
- LM_A_LICENSE_FILE
-
-
-
-
-
-
-
-
-
-
-
- - 37 -
-
-
-
- LM_A_LICENSE_FILE_PTR
- LM_A_LICENSE_DEFAULT (attributes for lc_set_attr)
- _______________________________________________________________
-
- LM_A_LICENSE_FILE and LM_A_LICENSE_FILE_PTR are pre-v5
- ways of setting these license file location. They
- behave the same as in v4, and, (it is noted here
- although it wasn't in the v4 manual or RELEASE_NOTES),
- behave identically to each other.
-
- LM_A_LICENSE_DEFAULT is new, and is usually preferred
- to the old methods.
-
- LM_A_LICENSE_DEFAULT: Normally, this is the preferred,
- and most efficient, method for setting the license
- file variable. This honors $LM_LICENSE_FILE
- environment variable first, then the path indicated to
- lc_set_attr(). If no valid license files are found in
- either location, it will return LM_NOCONFFILE as an
- error.
-
- The only reason to use the older attributes is if you
- explicitly do NOT want to honor the $LM_LICENSE_FILE
- environment variable, or if you want an error status
- returned if the license file is missing, but
- $LM_LICENSE_FILE is good. Again, this is not normally
- recommended.
-
- As of v5.0, we recommend code similar to the following
- to set a default license location:
-
- lc_set_attr(job, LM_A_LICENSE_DEFAULT, path);
-
- where "path" is a location in your product's
- distribution hierarchy. Again, this will honor
- $LM_LICENSE_FILE first, as well as the license finder,
- so that your users can easily override the location in
- your distribution hierarchy.
-
-
- Retry Forever--LM_A_RETRY_COUNT
- _______________________________
-
- A more and more common policy is to retry to connect
- and checkout a license forever. You can now set
- LM_A_RETRY_COUNT to -1 to explicitly request this
- behavior.
-
- lc_set_attr(job, LM_A_RETRY_COUNT, (LM_A_VAL_TYPE)-1);
-
- The PC version now defaults to -1 for LM_A_RETRY_COUNT.
-
-
-
-
-
-
-
-
-
-
-
- - 38 -
-
-
-
- In addition, on the PC, it is now disallowed to set
- LM_A_RETRY_COUNT to anything other than -1 without
- also setting LM_A_USER_EXITCALL.
-
-
- lc_checkout returns BADPARAM for nlic = 0
- __________________________________________
-
- lc_checkout() returns BADPARAM if the number of
- licenses to be checked out is 0.
-
-
- File name changes
- _________________
-
- All files now have common names for Windows, VMS, and
- Unix, in 8.3 format. On Unix and VMS, and old
- filenames will still be available. The following
- files are affected:
-
- Old Name New
- ________ ___
-
- binary directory:
- create_license makekey
- create_pkg makepkg
- isvaliddate validdat
- lmcrypter lmcrypt
- lmfeatset lmfeats
- ls_vendor.o lsvendor.o
-
- machind:
- DEMO.notes demo.txt
- RELEASE_NOTES relnotes.txt
- create_lic.c makekey.c
- create_pkg.c makepkg.c
- isvaliddate.c validdat.c
- lm_client.h lmclient.h
- lm_errors.h lmerrors.h
- lm_hosttype.h lmhtype.h
- lmcrypter.c lmcrypt.c
- ls_feature.h lsfeatur.h
- ls_master.h lsmaster.h
- ls_server.h lsserver.h
- ls_vendor.c lsvendor.c
- style_guide.ps style.ps
-
- examples directory:
- vendor_hostid vdhostid
- vendor_info vdinfo
-
-
-
-
-
-
-
-
-
-
-
-
- - 39 -
-
-
-
- LM_DEMOKIT error removed
- ________________________
-
- lc_init() never returns LM_DEMOKIT error as of v5.
-
- Other Enhancements
- __________________
-
- lc_timer()
- __________
-
- This function will do nothing if it is called within
- 20 seconds of the last time it was called. This
- prevents needless delays that would occur should
- lc_timer be called too often.
-
- lc_vsend()
- __________
-
- This function will now connect to a server if it is
- not already connected. Note that if a user has
- a colon-separated list for licenses, it will connect
- to the first server in the list.
-
- TIMEOUT
- _______
-
- If a client is timed-out via the end-user option
- TIMEOUT, it is now free'd from the server, within 2
- minutes from the time it times out. Previously,
- TIMEOUTs were only checked when a license for the same
- feature name was requested.
-
-
- lmdiag
- ______
-
- lmdiag provides a more extensive description of each
- license file line, and provides more error detection,
- particularly if the license has been mis-typed.
-
-
- Vendor Daemon Pools
- ___________________
-
- When an INCREMENT line occurs for a feature that
- already appears in the license file, the vendor
- daemon will add these licenses in one of two ways:
- either the licenses will be "pooled" with the previous
- line, or it will be counted separately, and not "pooled."
-
-
-
-
-
-
-
-
-
-
-
-
- - 40 -
-
-
-
- This behavior has existed since INCREMENT was introduced
- in v3.0, but the specifics were not documented before.
-
- If 2 lines differ by:
-
- hostid
- version
- USER_BASED
- HOST_BASED
- CAPACITY
-
- they are counted separately. If they differ in any
- other way, they are counted in a single "pool."
-
-
- REPORTLOG format changed
- ________________________
-
- The end-user option REPORTLOG format has changed. This is the
- file used by FLEXadmin to report on historical usage. The
- file is considerably improved:
-
- o The file size is now 1/3 to 1/10 it's old size, depending
- on each customer's actual usage (The file size will be
- somewhat larger with a larger pool of users.)
- o Considerably more information is in the file, including:
- - full license file information
- - authentication codes to detect end-user
- modification.
- - more complete transaction information.
-
- lmstrip
- _______
-
- lmstrip utility adds additional security to licensing on Unix.
- (Note that these security issues don't exist on Windows.)
- 'lmstrip -h' lists it's usage:
-
- Help: Usage: lmstrip file [ -l ] [ -e | -n ] [ -r ][ strings... ]
- -l List internal and external names to be stripped
- -e Don't strip external names
- -n Don't strip internal and external names
- -r Replaces strings with random printable characters
- strings Strip these strings from the executable
-
- Use -e if lc_xxx calls are made from shared library
-
- Use -r if you're linking 2 versions of FLEXlm. (This is
- discussed fully in the FLEXlm Reference Manual. See lmstrip).
-
- It improves security and ease-of-use in 3 areas:
-
-
-
-
-
-
-
-
-
-
-
- - 41 -
-
-
-
- 1) Fully-linked binaries, including vendor daemons
- 2) Shipping libraries.
- 3) Linking with libraries that also use FLEXlm.
-
- 1) For shipping binaries and vendor daemons, we suggest running:
-
- % lmstrip binary_name
-
- 2) Shipping libraries:
-
- Assuming there's a single .o file that makes flexlm calls,
- (license.o):
-
- % ld -r license.o liblmgr.a -o lmgr_license.o
- % lmstrip -r lmgr_license.o
-
- You then ship lmgr_license.o to your customers.
-
- 3) Linking with libraries that already use FLEXlm. See the
- FLEXlm Reference Manual.
-
-
- Other Changes
- _____________
-
- Debug libraries are shipped compressed
- ______________________________________
-
- On Unix, the debug_libs directory contains libraries with
- -g debug flag turned on. These libraries are now shipped
- compressed. Use the uncompress flag to use these libraries.
-
- License Finder now turned off by default
- ________________________________________
-
- The FLEXlm finder is turned off on Windows by default.
- It can be forced on by setting FLEXLM_USE_FINDER environment
- variable to "1". The change was made because the finder
- uses gethostbyname(), and this can adversely affect performance,
- or cause a hang, when NIS or DNS is not working properly.
-
-
- Bug fixes:
- __________
-
- Bug Platform Description
- P265 all lmstat doesn't report two features of the same
- name from different daemons.
- P338 VMS lmstat and lmswitch failed when daemon started as
- batch.
- P353 all lc_feat_list failed when first server in colon-sep
-
-
-
-
-
-
-
-
-
-
-
- - 42 -
-
-
-
- list was down
- P456 all Can't RESERVE specific INCREMENT lines.
- P539 all lc_lic_where sometimes report wrong path.
- P564 VMS If license path contained non-existent file, rest
- of path wasn't searched.
- P639 hp700 Compiler flags weren't always correct.
- P668 SCO lc_baddate failed on sco.
- P681 SCO Install instructions were incorrect for SCO, where
- the install has to be done more manually, since
- SCO csh syntax is limited.
- P682 all Server pools licenses with different expiring dates,
- and doesn't expire licenses after being read.
- P688 all lmreread sometimes caused checkouts to fail.
- P699 all lmdiag sometimes misleading reported error -73.
- P700 NT Timers silently fail in console Mode.
- P702 all Name=Value attribute pairs could have false matches.
- P707 all reconnection would fail when 2 INCREMENT lines
- that don't pool are both checked out.
- P715 hp700 lmcrypter failed with gcc as compiler.
- P722 all lmdiag missing man page.
- P724 all -v arg to lmgrd and utilities wasn't always working.
- P743 Windows Counted node-locked to VSN, hangs
- P754 all lmstat -A didn't always print correct user list.
- P756 all LM_A_PERIODIC_CALL callbacks sometimes didn't get
- called.
- P757 all lc_checkout with cnt=0 silently fails.
- P760 all Vendor-defined hostids must be of type string.
- Otherwise silently fail.
- P765 rs6000 License file path with '@' in names fails.
- P766 all Child processes inherit FLEXlm socket descriptor.
- P767 all String hostid types failed with trailing blanks.
- P768 all create_license silently creates invalid license
- if counted license with no SERVER line.
- P772 all 2 quick lmdown commands can corrupt REPORTLOG file.
- P774 all PACKAGE with same name as component silently fails.
- P783 netware Won't run on Netware v3.11
- P786 Win/NT/Netware vendor daemon name > 8 characters fails.
- P790 all lmswitch doesn't honor LM_LICENSE_FILE.
- P793 hp700 When NIS or DNS fails, log file report ??? for
- username.
- P796 all lmcksum fails on vendor-defined hostid.
- P829 sunos4 Spurious errors reported when SIGALRM set, but
- not alarm or setitimer().
- P837 NT Can't pass args to lmgrd as a service.
- P844 Windows Malloc errors weren't always reported -- a different,
- misleading, error would result.
- P847 all Can't use lmcrypter with expire date > 2026.
- P851 hp700 node-locked features take too long to get hostid,
- and use SIGALRM, causing problems with programs
- that separately use SIGALRM.
- P876 Unix Calling setrlimit after lc_init can cause core dump.
-
-
-
-
-
-
-
-
-
-
-
- - 43 -
-
-
-
- P883 all License lines were sometimes > 80 characters long.
- P884 all Can miscount total number of licenses.
- P885 Unix lmcrypter leaves temporary file in /usr/tmp when
- input is stdin.
- P904 all SUITE PACKAGE in ls_use_all_features daemon fails
- when enabled with FEATURE.
- P905 all lmdown incorrectly report "1 server shutdown" on
- redundant servers.
- P910 all lc_master_list memory wasn't free'd by lc_free_job().
- P914 sgir8 lmver fails, use "string <file> | grep Copy" instead.
- P916 all lmstat doesn't report counted features when
- preceded by uncounted for daemon none.
- P924 all finder used even when $LM_LICENSE_FILE set.
- P926 all man page for lc_errstring fixed.
- P953 Intel/DEC lmdiag extended diagnostics failed on systems with
- reverse-byte order shorts.
- P969 all lmcrypt fails if first char in COMPONENTS= is space.
- P976 all lc_checkin reported a spurious error when dequeueing.
- P989 Win95 License finder doesn't work on Windows 95.
- P1009 all lmswitchr failed without a "-c license_file" argument
- P1035 all lc_expire_days incorrect when exp-date > 2038
- P1045 all report.log linger value is set to dup_select value.
- P1052 all DAEMON port number wasn't reused when vd restarted
- P1064 all 4-digit year errors in SUPERSEDE, lc_expire_days
- P1066 all success of starting REPORTLOG now accurate in
- lmgrd log
- P1067 all REPORTLOG large license files causes server to fail.
- P1072 all large license files fail producing report.log files
- P1082 all client can hang in checking out a license with a
- & P1089 lot of traffic
- P1127 all ip address is incorrect (sometimes) in report.log
- P1135 all license for client with DUP_GROUP not always freed
- when client dies
- P1144 all VD_FEAT_INFO -- user_cnt was wrong
- P1052 all DAEMON port not reused with redundant servers.
- P1162 all Trivial and Simple API can core dump. Mostly on
- solaris 2.4
- P1174 all CONFIG_DAEMON edits ls_vendor.c, wrong file --
- should be lsvendor.c
- P1179 all lmgrd restarting daemon--daemon can hang because the
- port is in use.
- P1180 Win/NT Backwards compatibility problem with 4.1 rainbows
- dongle license
- P1188 all INTERNET= hostid fails when counted.
- P1190 all lc_userlist(), called 2+ times, gives duplicate
- results with port@host (or USE_SERVER)
- P1225 NT v4 style of vendor-defined hostid failed with v5.
- P1230 all lc_userlist can fail.
- P1268 all LM_A_VD_FEATURE_INFO can fail with redundant servers
- P1277 all node-locked client can hang with port@host when
- on wrong host.
-
-
-
-
-
-
-
-
-
-
-
- - 44 -
-
-
-
- Known bugs:
- ___________
-
- P1007 sco UDP communications does not work. It appears to
- be a bug in the OS we ported to, 3.2v5.
- P1179 all PORT=nnn only: lmgrd restarting daemon,
- daemon can hang until clients drop connections to
- dead daemon.
-
-
- Platform Specific Notes:
- ________________________
-
- i86_w3
- ______
-
- Win32s will not be supported after FLEXlm v5. This is
- because Microsoft is discontinuing support for win32s.
-
- UNIX
- ____
-
-
- alpha_u1
- ________
-
- uname -a: OSF1 speedy 1.2 10 alpha
- CC: cc -std1
-
- decs_u4
- _______
-
- uname -a: ULTRIX newport 4.2 0 RISC
- CC: /bin/cc -DPMAX -DULTRIX -DMIPS
-
- dg_u5
- _____
-
- uname -a: dgux dgsvr4 5.4 generic AViiON mc88100
- CC: /bin/cc
-
- encore_u4
- _________
-
- uname -a: UNIX_SV encore 4.2MP 4.0.0.10 m88k m88k
- CC: /usr/bin/cc
-
- hp300_u8
- ________
-
- uname -a: HP-UX agent86 B.08.00 A 9000/375 080009060992
-
-
-
-
-
-
-
-
-
-
-
- - 45 -
-
-
-
- CC: /bin/cc
- link flags: -lBSD
-
- hp700_u8
- ________
-
- uname -a: HI-UX hit1 02.03_/B E 3050/R 154
- CC: /bin/cc -Aa -D_HIUX_SOURCE +DA1.0 +DS1.0
- (replace HIUX with HPUX on an HP system)
-
- i86_d4
- ______
-
- uname -a: dgux dgbig R4.11 generic AViiON Pentium
- CC: /bin/cc, actually, /usr/opt/sdk/sde/ix86dgux/usr/bin
-
- NOTE: hostid comes from /dev/net/*. By default these files
- are only readable by root. We recommend changing the
- perms to:
-
- # chmod 644 /dev/net/*
- i86_l1
- ______
-
- uname -a: Linux linux 1.2.13 #1 Sun Aug 13 06:33:35 EDT 1995 i586
- CC: /usr/bin/cc
- cc -v: Reading specs from /usr/lib/gcc-lib/i486-linux/2.7.0/specs
- gcc version 2.7.0
-
- IMPORTANT NOTE: v5 version uses ethernet address as a hostid,
- which is relatively secure. v4 used the 'hostid' command,
- which was not secure. To obtain the ethernet address, type:
-
- /sbin/ifconfig eth0
-
- Convert the hardward address as follows:
-
- From: HWaddr 00:40:05:16:E5:25
- To: 00400516E525
-
- V5 lmhostid will report ethernet address by default. v4
- will report 'hostid'. Both types of hostid are acceptable
- to version 5 clients and servers.
-
- lmhostid, or lmhostid -ether
- -- obtains the ethernet address (secure)
- lmhostid -long
- -- obtains the output from the 'hostid' command
- (not secure)
-
- i86_u2
-
-
-
-
-
-
-
-
-
-
-
- - 46 -
-
-
-
- ______
-
- uname -a: UNIX_SV rolm 4.2MP 2.0 i386 x86at
- CC: /usr/bin/cc
-
- i86_x5 (Solaris on Intel)
- ______
-
- uname -a: SunOS sunpc 5.4 generic i86pc i386
- CC: /opt/SUNWspro/bin (version 3.0)
-
- moto_u4
- _______
-
- uname -a: UNIX_System_V motosvr4 4.0 R40V4.2 m88k mc88100
- CC: /bin/cc
- link flags: -lsocket -lnsl
-
- nec_u2
- ______
-
- uname -a: UNIX_System_V nec 4.0 2 R3000 r3000
- CC: /bin/cc
- link flags: -lsocket -lnsl
-
- rs6000_u3
- _________
-
- uname -a: AIX rs6000 1 3 000276513100
- CC: /bin/cc -D_BSD -D_BSD_INCLUDES
- link flags: -lbsd
-
- sco_u3
- ______
-
- uname -a: SCO_SV sco 3.2 2 i386
- uname -X:
- System = SCO_SV
- Node = sco
- Release = 3.2v5.0.0
- KernelID = 95/04/19
- Machine = i80486
- BusType = ISA
- Serial = 2CG001148
- Users = 5-user
- OEM# = 0
- Origin# = 1
- NumCPU = 1
- CC: /bin/cc -Dsco
- link flags: scoinfo.o -lsocket
-
-
-
-
-
-
-
-
-
-
-
-
- - 47 -
-
-
-
- IMPORTANT NOTE: Previous FLEXlm versions were built on an older OS:
- Release = 3.2v2.0
- KernelID = 90/10/01
-
- sgi_u4
- ______
-
- uname -a: IRIX oly 4.0 08212247 IP6
- CC: /usr/bin/cc -cckr
- link flags: -lsun -lbsd -lc_s
-
- sgi_u5
- ______
-
- uname -a: IRIX indy 5.2 02282013 IP12 mips
- CC: /bin/cc
-
- To build -n32 -mips3 or -n32 -mips4 on IRIX 6:
-
- 1) In this directory, do:
-
- % make o32
-
- This builds all binaries in o32 format.
-
- 2) Link your application (which has been compiled with
- -n32 -mips3 (or -mips4) with the correct FLEXlm library:
-
- liblmgr_n32mips3.a, or
- liblmgr_n32mips4.a
-
- NOTE: sgi keys are required for any 32-bit binary, including
- IRIX 6 with -n32 flags.
-
- sgi64_u6
- ________
-
- uname -a: IRIX64 challenger 6.1 07121831 IP26 mips
- CC: /bin/cc
-
- This was called sgir8_u6 in previous versions. It's been
- renamed to reflect the fact that it's 64-bit.
-
- To build -n32 -mips3 or -n32 -mips4, see sgi_u5 above.
-
- We currently only support 64-bit, mips4 binaries, which
- is how all files in this directory are compiled.
-
- sun4_u4
- _______
-
-
-
-
-
-
-
-
-
-
-
-
- - 48 -
-
-
-
- uname -a: SunOS ss 4.1.2 2 sun4c
- CC: /bin/cc
-
- sun4_u4 is now built on a 4.1.2 system. This means that it
- will no longer work with 4.0.3 systems.
-
- sun4_u5
- _______
-
- uname -a: SunOS backstage 5.1 Generic sun4m sparc
- CC: /opt/SUNWspro/bin/cc
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-